package com.huluobo.high3videoproject.setting.presenter;

import com.huluobo.high3videoproject.bean.UpdateBeanResult;

import io.reactivex.Observable;
import okhttp3.MultipartBody;

public interface SettingContract {
    interface Model {
        Observable<UpdateBeanResult> updateAddress(String address);

        Observable<UpdateBeanResult> updateBirth(String birth);

        Observable<UpdateBeanResult> updateIcon(MultipartBody.Part part);

        Observable<UpdateBeanResult> updateNickName(String nickName);
    }

    interface Presenter {
        void updateAddress(String address);

        void updateBirth(String birth);

        void updateIcon(String path);

        void updateNickName(String nickName);
    }

    interface View {
        void onUpdateAddressSuccess(UpdateBeanResult updateBeanResult);

        void onUpdateAddressFailed(String error);

        void onUpdateBirthSuccess(UpdateBeanResult updateBeanResult);

        void onUpdateBirthFailed(String error);

        void onUpdateIconSuccess(UpdateBeanResult updateBeanResult);

        void onUpdateIconFailed(String error);

        void onUpdateNickNameSuccess(UpdateBeanResult updateBeanResult);

        void onUpdateNickNameFailed(String error);
    }
}
